1. Field of the Invention
The present invention relates generally to data communication. More particularly, the present invention relates to data transfer over packet networks.
2. Background Art
Packet-switched networks such as the Internet are widely used to transfer data. By themselves, such networks typically provide for simple communication between network hosts. This simplicity, while helping to spur the rapid, global adoption of packet-switched networks, comes at the price of reduced reliability. Thus, messages transmitted between network hosts are not guaranteed by the underlying packet-switched network to arrive in order, on time, or at all. Packets might be reordered or dropped because of bandwidth contention or line error, leading to a loss of throughput. In response to these shortcomings, higher-level protocols have been created that operate in conjunction with the underlying packet-switched network to alleviate particular problems.
For example, the higher-level protocols UDP and TCP were designed to make additional facilities available to network hosts communicating on a packet-switched network. Using UDP, hosts can accomplish checksumming and application-specific message multiplexing, while using TCP, hosts can rely on certain message-delivery and message-ordering guarantees. UDP is generally less reliable than TCP, and TCP, initially specified in the 1970s, assumes certain network traffic behaviors that are suitable for only certain types of data transfers.
Data transfer systems implemented with conventional higher-level protocols can still experience the loss of throughput associated with bandwidth contention, because bandwidth contention happens at the lower packet-switched network level. Bandwidth contention occurs when two or more network hosts attempt, knowingly or not, to use the same path through the packet-switched network at the same time. When these attempts are made, packets from each application may interfere with each other at intermediate routers in the packet switched network. Where the packets interfere, they must take turns, usually by waiting in a router packet queue, which imposes a delay. During high traffic conditions, this contention will lead to decreased throughput, and as the traffic increases, dropped packets. Packets can be dropped when a router is finally overwhelmed by traffic, and has a full queue.
Data transfer systems implemented with conventional higher-level protocols can also still experience the loss of throughput associated with line error, because line error happens at or below the packet-switched network level. Line error can occur whether or not a particular path through a packet-switched network is experiencing any bandwidth contention, and instead usually involves equipment failure. One example of equipment failure is caused by power outage or software crash on a router, resulting in an entire queue's worth of packets dropped. Another example of equipment failure is caused by a transmission line being physically severed. In this case, all packets transmitted on the line are dropped until the line is repaired.
Higher-level protocols have made some inroads into dealing with the unreliability of packet-switched networks, but they cannot effectively avoid the lost throughput caused by bandwidth contention and line errors, so as to maintain an acceptable or reliable data transfer rate or data throughput. Accordingly, there is a need to overcome the drawbacks and deficiencies in the art by providing an improved method or system for transferring data over packet-switched networks.